Digital filters are being used in an increasing number of electronic devices. One commonly used type of digital filter is a finite impulse response (FIR) filter. The finite impulse response filter is a sampled data filter characterized by its impulse response. The input signal is a discrete time sequence which may be analog or digital while the output is also a discrete time sequence which is the convolution of the input sequence and the filter impulse response. The relationship between the input samples V.sub.i [n] and output samples V.sub.o [n] is given by: EQU V.sub.o [n]=A.sub.0 V.sub.i [n]+A.sub.1 V.sub.i [n-1]+A.sub.2 V.sub.i [n-2]+ . . . +A.sub.N-1 V.sub.i [n-N+1] (1)
Applying the Z-transform, the previous relationship can be represented as: EQU V.sub.o (z)=A.sub.0 V.sub.i (z)+A.sub.1 V.sub.i (z)Z.sup.-1 +A.sub.2 V.sub.i (z)Z.sup.-2 + . . . +A.sub.N-1 V.sub.i (z)Z.sup.-(N-1)(2)
The components of the coefficient vector A.sub.0 . . . A.sub.N-1 are ordinarily referred to as filter tap weights. In the impulse response of the filter, there is no feedback and thus it is an all zero filter, which means that the response is shaped by placement of transmission zeroes in the frequency domain. This class of filters facilitates the implementation of adaptive filter structures.
FIR filters may be implemented in the analog domain or in the digital domain. An analog FIR filter implementation typically performs multiplication of the tap weights and the input signal samples using analog multipliers, and sums each term using an analog summer. In a digital FIR filter implementation, multiplication of the tap weights and the input signal samples as well as summation of each term in equation 1, are typically performed digitally.
Although digital FIR filters normally produce an output signal with a higher signal to noise ratio than an analog FIR filter, digital FIR filters are impractical for some applications. For example, analog FIR filters may normally operate at much higher speeds than digital FIR filters. Analog FIR filters, therefore, are most commonly used in high speed applications such as, for example, magnetic disk drive read channels, radios, modems, and communication channels. However, existing architectures for FIR filters have various drawbacks when used for analog FIR filters.
One existing analog FIR implementation is an analog delay line based architecture. This architecture typically includes an analog delay line, analog multipliers, and an N-input analog summing block. The filter output is the sum of the inner product of the input vector and the coefficient vector. The analog delay line is normally composed of a chain of analog sample and hold amplifiers. Each sample and hold amplifier samples during the holding time of the preceding sample and hold amplifier in the chain. The problem with the delay line based architecture is that in the process of sampling, the signal acquires a certain amount of noise, offset, and distortion. After the analog signal has passed through a chain of sample and hold amplifiers, the level of distortion is often unacceptable.
An analog FIR filter architecture that avoids multiple sampling of the input signal is one employing round robin sampling of the input signal. In this type of architecture, the signal is sampled in a round robin manner, preventing error accumulation from one sample and hold amplifier to the next. Each sample and hold amplifier's output connects to an analog multiplier. In order to simulate delay, the output of the sample and hold amplifier is multiplied in the analog multiplier by a series of tap weights that are shuffled every clock cycle. For example, in a three tap filter, the output of a given sample and hold amplifier will be multiplied by tap weight A.sub.0 during the first clock cycle after sampling, by tap weight A.sub.1 during the second clock cycle after sampling, and by tap weight A.sub.3 on the third clock cycle after sampling.
The problem with this architecture is that the digital tap weights need to be shuffled every clock cycle. A large number of signals, therefore, need to be switched on every clock cycle. For example, in a 9 tap filter using 6-bit digital-to-analog converters, 54 signals are switched during every clock cycle. This heavy switching consumes a large amount of power, especially if the signals are at full CMOS levels. In addition, switching noise can be significant and can affect filter performance. For certain digital-to-analog converter (DAC) circuit implementations where overlapping clocks are required, both true and complement signals are needed. This will double the number of shuffled signals, increasing both power consumption and digital noise generation. Moreover, the shuffling of coefficients every clock cycle poses a great demand on the settling time of the DACs. Lesser settling time is attained at the expense of larger power consumption as faster DAC's consume more power.
The previous two analog FIR filter structures described above are known as direct form FIR filter implementations. An alternative filter implementation is called a transpose-form FIR filter architecture. In a transpose-form FIR filter, the input signal is multiplied by all of the tap coefficients, and delayed versions of the taps are combined together at the output to form the final filter output. Integrators integrate the final filter output over N-clock cycles for an N-tap filter. During each clock cycle, a new multiplying DAC is switched and accumulated in a round robin manner on the integrating capacitor of the integrator block. This FIR filter architecture thus eliminates tap coefficient shuffling at the input of each multiplying DAC.
The problem with this architecture, however, is in the circuit implementation of the integrators and multiplying DACs. In order to achieve high speed and low power consumption, a current-based multiplying DAC is normally used. Then, to perform summation, the current produced by the multiplying DACs is switched onto the capacitor which sums up the charge over N clock cycles. Although such circuit implementation may achieve greater speed, filter performance is greatly diminished due to both clock jitter and integration of switching transients.
The first and second architectures described above employ multiple sample and hold circuits. Ideally, each sample and hold circuit would hold its output at a precise time during a clock transition. Precisely defined sampling instants, however, are difficult to achieve in actual sample and hold circuit implementations. Often, when multiple sample and hold circuits are used in a larger circuit, each sample and hold samples at a slightly different time. In other words, the actual sampling time can occur within a certain neighborhood of a clock edge and the precise sampling time will often vary among multiple sample and holds.
Sample and hold circuit timing errors can lead to several problems. First, the signal to noise ratio of the output of the FIR filter may be disturbed. The equations used to derive an FIR filter assume that an input signal is being sampled at precise instants. When sample and hold circuit timing errors cause the sampling time to deviate from those precisely defined instants, the signal is being sampled at the wrong time and, typically, the signal will have changed value since the precisely defined sampling instant. In effect, the FIR filter receives an incorrect signal value because it samples the signal at an improper time.
In addition, sample and hold timing errors may cause clock jitter as the output of an FIR filter is often fed back into a phase locked loop to generate the clock used to control sampling. Clock jitter on the FIR filter clock further degrades filter performance.